const path = require('path'); //Node.js引入path模块

module.exports = {

  // 模式选择
  // mode: "production", // enable many optimizations for production builds
  // mode: "development", // enabled useful tools for development
  // mode: "none", // no defaults
  mode: "development", // "production" | "development" | "none

  watch:true,

  entry: {
    // 这里应用程序开始执行
    // webpack 开始打包
    index1: './src/index.js'
  },

  output: {
    // webpack 如何输出结果的相关选项
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist') // 所有输出文件的目标路径
    // 必须是绝对路径（使用 Node.js 的 path 模块）
  },

  module: {
    // 关于模块配置
    rules: [
      // 模块规则（配置 loader、解析器等选项）
      {
        test: /\.jsx?$/,
        include: [
          path.resolve(__dirname, "src")
        ],
        // 这里是匹配条件，每个选项都接收一个正则表达式或字符串
        // test 和 include 具有相同的作用，都是必须匹配选项
        // exclude 是必不匹配选项（优先于 test 和 include）
        // 最佳实践：
        // - 只在 test 和 文件名匹配 中使用正则表达式
        // - 在 include 和 exclude 中使用绝对路径数组
        // - 尽量避免 exclude，更倾向于使用 include

      },
      {
        test: /\.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      },
      {
        test: /\.(png|svg|jpg|gif)$/,
        use: [
        'file-loader'
        ]
      },
    ]
  }
};